package com.itheima.system.mapper;
import com.itheima.system.pojo.User;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Set;

/**
 * @author IntelliJ IDEA
 * @date 2020/10/23  10:36
 */
public interface UserMapper {

    /**
     * 新增用户
     */
    Integer addUser(User user);

    /**
     * 根据用户id查询用户
     */
    User findUserById(@Param("id") String id);

    /**
     * 分页查询用户列表
     */
    List<User> findAllUserByPage(@Param("hasDept") String hasDept, @Param("companyId") String companyId, @Param("departmentId") String departmentId);

    /**
     * 根据id删除用户
     */
    Integer deleteUserById(@Param("id") String id);

    /**
     * 修改用户
     */
    Integer updateUserByUserId(User user);


    /**
     * 删除中间表
     */
    void deleteUserAndRoleByUserId(@Param("userId") String userId);

    /**
     * 给用户分配角色
     */
    void assignRoles(@Param("userId") String userId, @Param("roleIds") Set<String> roleIds);

    /**
     * 根据用户id查询角色权限
     */
    User findUserAndRoleAndPermission(@Param("userId") String userId);


    /**
     * 根据手机号查询用户
     */
    User findUserByMobile(String mobile);

    /**
     * excel批量导入用户
     */
    void saveAll(@Param("userList") List<User> userList);
}
